package com.ityedao.数组;

import java.util.Random;
import java.util.Scanner;

public class GuessNumGame {
    public static void main(String[] args) {
        /**
         * 需求
         * 开发一个幸运小游戏，游戏规则如下：
         * 游戏后台随机生成1-20之间的5个数（无所谓是否重复），然后让大家来猜数字：
         * 未猜中提示：“未命中”，并继续猜测
         * 猜中提示：“运气不错，猜中了”，并输出该数据第一次出现的索引位置，最后把数组中的5个数据都输出看以下， 然后结束本游戏。
         */

        // 1、随机生成5个1-20之间的数据存储起来 ---> 使用数组
        Random r = new Random();
        int[] nums = new int[5];
        for (int i = 0; i < nums.length; i++) {
            nums[i] = r.nextInt(20) + 1;
        }
        System.out.println("数组中的元素：");
        for (int i = 0; i < nums.length; i++) {
            System.out.print(nums[i]);
            System.out.println();
        }
        // 2、定义一个死循环，输入数据猜测，遍历数组，判断数据是否在数组中，如果在，进行对应提示并结束死循环；如果没有猜中，提示继续猜测直到猜中为止。
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("请输入您猜测的数字（1-20）:");
            int guessNum = sc.nextInt();
            for (int i = 0; i < nums.length; i++) {
                if (guessNum != nums[i]){
                    // 继续看数组中的下一个元素
                    if (i== nums.length - 1 && guessNum != nums[i]){
                        System.out.println("未命中~");
                        break;
                    }
                }
                if (guessNum == nums[i]){
                    System.out.println("猜中了~第一次出现的数组下标是：" + i);
                    System.out.print("数组中的元素是：");
                    for (int num : nums) {
                        System.out.print(num + " ");
                    }
                    return;
                }
            }
        }
        }
    }
